8 research outputs found
Credible Autocoding of Convex Optimization Algorithms
The efficiency of modern optimization methods, coupled with increasing
computational resources, has led to the possibility of real-time optimization
algorithms acting in safety critical roles. There is a considerable body of
mathematical proofs on on-line optimization programs which can be leveraged to
assist in the development and verification of their implementation. In this
paper, we demonstrate how theoretical proofs of real-time optimization
algorithms can be used to describe functional properties at the level of the
code, thereby making it accessible for the formal methods community. The
running example used in this paper is a generic semi-definite programming (SDP)
solver. Semi-definite programs can encode a wide variety of optimization
problems and can be solved in polynomial time at a given accuracy. We describe
a top-to-down approach that transforms a high-level analysis of the algorithm
into useful code annotations. We formulate some general remarks about how such
a task can be incorporated into a convex programming autocoder. We then take a
first step towards the automatic verification of the optimization program by
identifying key issues to be adressed in future work
Credible Autocoding of Convex Optimization Algorithms
International audienceThe efficiency of modern optimization methods, coupled with increasing computational resources, has led to the possibility of real-time optimization algorithms acting in safety critical roles. There is a considerable body of mathematical proofs on on-line optimization programs which can be leveraged to assist in the development and verification of their implementation. In this paper, we demonstrate how theoretical proofs of real-time optimization algorithms can be used to describe functional properties at the level of the code, thereby making it accessible for the formal methods community. The running example used in this paper is a generic semi-definite programming (SDP) solver. Semi-definite programs can encode a wide variety of optimization problems and can be solved in polynomial time at a given accuracy. We describe a top-to-down approach that transforms a high-level analysis of the algorithm into useful code annotations. We formulate some general remarks about how such a task can be incorporated into a convex programming autocoder. We then take a first step towards the automatic verification of the optimization program by identifying key issues to be adressed in future work
Formal verification of control software
In a context of heightened requirements for safety-critical embedded systems and
ever-increasing costs of verification and validation, this research proposes to
advance the state of formal analysis for control software. Formal methods are a
field of computer science that uses mathematical techniques and formalisms to
rigorously analyze the behavior of programs. This research develops a framework
and tools to express and prove high level properties of control law
implementations. One goal is to bridge the gap between control theory and
computer science. An annotation language is extended with symbols and axioms to
describe control-related concepts at the code level. Libraries of theorems,
along with their proofs, are developed to enable an interactive proof assistant
to verify control-related properties. Through integration in a prototype tool,
the process of verification is made automatic, and applied to several example systems.In a context of heightened requirements for safety-critical embedded systems and
ever-increasing costs of verification and validation, this research proposes to
advance the state of formal analysis for control software. Formal methods are a
field of computer science that uses mathematical techniques and formalisms to
rigorously analyze the behavior of programs. This research develops a framework
and tools to express and prove high level properties of control law
implementations. One goal is to bridge the gap between control theory and
computer science. An annotation language is extended with symbols and axioms to
describe control-related concepts at the code level. Libraries of theorems,
along with their proofs, are developed to enable an interactive proof assistant
to verify control-related properties. Through integration in a prototype tool,
the process of verification is made automatic, and applied to several example systems.Ph.D